WCF (Windows Communication Foundation) সার্ভিস তৈরি করার সময় Contract Attribute এবং Method Signature গুরুত্বপূর্ণ ভূমিকা পালন করে। Contract Attribute সার্ভিসের কার্যকলাপ সংজ্ঞায়িত করে এবং Method Signature নির্ধারণ করে যে, সার্ভিসের কোন মেথডগুলি ক্লায়েন্টের জন্য উপলব্ধ থাকবে এবং তাদের প্যারামিটার কেমন হবে।
Contract Attribute
Contract Attribute হল WCF-এর একটি অত্যন্ত গুরুত্বপূর্ণ অ্যাট্রিবিউট যা একটি ইন্টারফেস বা ক্লাসকে Service Contract বা Data Contract হিসেবে চিহ্নিত করে। WCF এ দুটি প্রধান কন্ট্র্যাক্ট থাকে:
- Service Contract: সার্ভিসের অপারেশন বা মেথডগুলিকে সংজ্ঞায়িত করে।
- Data Contract: ডেটা ট্রান্সফারের জন্য ব্যবহৃত ডেটা কাঠামো (যেমন ক্লাস বা অবজেক্ট) সংজ্ঞায়িত করে।
Service Contract Attribute
Service Contract অ্যাট্রিবিউট একটি ইন্টারফেস বা ক্লাসকে চিহ্নিত করে যা WCF সার্ভিসের অপারেশনগুলো ধারণ করবে।
[ServiceContract]
public interface IMyService
{
[OperationContract]
string GetMessage(string name);
}
- [ServiceContract] অ্যাট্রিবিউট ইন্টারফেস বা ক্লাসটিকে সার্ভিস কন্ট্র্যাক্ট হিসেবে চিহ্নিত করে।
- [OperationContract] অ্যাট্রিবিউট প্রতিটি মেথডকে সার্ভিস অপারেশন হিসেবে চিহ্নিত করে।
Data Contract Attribute
Data Contract অ্যাট্রিবিউট ক্লাস বা স্ট্রাকচারগুলিকে চিহ্নিত করে যেগুলো WCF সার্ভিসের মাধ্যমে ডেটা আদান-প্রদান করবে।
[DataContract]
public class Person
{
[DataMember]
public string Name { get; set; }
[DataMember]
public int Age { get; set; }
}
- [DataContract] অ্যাট্রিবিউট ক্লাসটিকে একটি ডেটা কন্ট্র্যাক্ট হিসেবে চিহ্নিত করে।
- [DataMember] অ্যাট্রিবিউট ক্লাসের প্রোপার্টি বা ফিল্ডগুলোকে চিহ্নিত করে যেগুলো ডেটা আদান-প্রদান করা হবে।
Method Signature
Method Signature হল WCF সার্ভিসের ইন্টারফেসে বা কনট্র্যাক্টে প্রতিটি মেথডের সঠিক স্বাক্ষর, যা ক্লায়েন্টদের সঙ্গে ইন্টারঅ্যাক্ট করতে ব্যবহৃত হবে। Method Signature সাধারণত [OperationContract] অ্যাট্রিবিউটের মাধ্যমে সার্ভিসে সংজ্ঞায়িত মেথডের আর্গুমেন্ট এবং রিটার্ন টাইপ নির্ধারণ করে।
Method Signature এর উদাহরণ:
- Service Contract এর মধ্যে Method Signature
[ServiceContract]
public interface IMyService
{
[OperationContract]
string GetMessage(string name);
[OperationContract]
int AddNumbers(int num1, int num2);
}
- GetMessage মেথডের সিগনেচার: এটি একটি string প্যারামিটার (name) নেয় এবং একটি string রিটার্ন করে।
- AddNumbers মেথডের সিগনেচার: এটি দুটি int প্যারামিটার নেয় এবং একটি int রিটার্ন করে।
- Method Signature with Data Contract
[ServiceContract]
public interface IMyService
{
[OperationContract]
string GetPersonInfo(Person person);
}
[DataContract]
public class Person
{
[DataMember]
public string Name { get; set; }
[DataMember]
public int Age { get; set; }
}
- GetPersonInfo মেথডের সিগনেচার: এটি Person ডেটা কন্ট্র্যাক্টের অবজেক্ট নেয় এবং একটি string রিটার্ন করে।
- Person ক্লাসটি DataContract হিসেবে চিহ্নিত এবং এর প্রোপার্টিগুলি DataMember অ্যাট্রিবিউটের মাধ্যমে চিহ্নিত করা হয়েছে।
Contract Attribute এবং Method Signature এর সম্পর্ক
- Service Contract অ্যাট্রিবিউট সার্ভিসের Operation Contract অ্যাট্রিবিউট দ্বারা চিহ্নিত মেথডগুলির স্বাক্ষর (signature) নির্ধারণ করে, যা ক্লায়েন্ট অ্যাপ্লিকেশন থেকে এক্সেস করা যাবে।
- Data Contract অ্যাট্রিবিউট ক্লাসগুলোর মধ্যে ডেটা আদান-প্রদানের জন্য ব্যবহৃত ফরম্যাট নির্ধারণ করে।
- Method Signature এবং Operation Contract: OperationContract মেথডের স্বাক্ষর এবং এর প্যারামিটার ও রিটার্ন টাইপ চিহ্নিত করে, যাতে ক্লায়েন্ট সার্ভিসটি ব্যবহার করতে পারে।
সারাংশ
- Contract Attribute (যেমন ServiceContract এবং DataContract) WCF সার্ভিসের কার্যকলাপ এবং ডেটা কাঠামো সংজ্ঞায়িত করে।
- Method Signature হল সেই সিগনেচার যা মেথডের প্যারামিটার এবং রিটার্ন টাইপ নির্ধারণ করে, যা সার্ভিসের অপারেশনগুলোর জন্য ব্যবহৃত হয়।
- OperationContract অ্যাট্রিবিউট মেথডগুলির জন্য ব্যবহৃত হয় যা WCF সার্ভিসে ক্লায়েন্ট এক্সেস করতে পারে।
Read more